package streambyte

import (
	"streambyte/rtype"
	"unsafe"
)

// GetRtype 得到类型
func GetRtype(i interface{}) (string, *rtype.EmptyInterface) {
	// 转换为底层结构体
	eface := (*rtype.EmptyInterface)(unsafe.Pointer(&i))
	// 取底层类型
	tpy := eface.Typ
	if tpy == nil {
		return "", nil
	}
	return tpy.TypeName(), eface
}
